跳到主要内容

CAN over TCP写入

CAN over TCP写入

组件名称CAN over TCP write
工具集算盘组件
组件作者雪浪云 - 子陵
文档版本20220607v00
功能组件将更新的点位表信息封装在CAN帧中,再通过TCP协议传给Server。
镜像名称suanpan_c_can_over_tcp_write:0_0.0.1
开发语言C

简介
该组件作为 TCP Client
1 个 TCP 帧包含若干个 CAN 帧
1 个 CAN 帧包含 13 个字节 帧信息:长度 1 个字节,用于标识该 CAN 帧的一些信息,如类型、长度等 FF:标准帧和扩展帧的标识,1 为扩展帧,0 为标准帧。
RTR:远程帧和数据帧的标识,1 为远程帧,0 为数据帧。
保留:保留值为 0,不可写入 1。
D3~D0:标识该 CAN 帧的数据长度。

帧 ID:长度 4 字节,标准帧有效位是 11 位,扩展帧有效位是 29 位。
如标准帧ID号0x3FF的表示方式:

如扩展帧ID号0x12345678的表示方式:

帧数据:长度 8 个字节,有效长度由帧信息的 D3~D0 的值决定。
如 8 字节有效数据的表达方式:

如 6 字节有效数据的表达方式:

以下例子是一个扩展数据帧,ID 为 0x12345678,包含 8 个字节数据(11h、22h、33h、44h、55h、66h、77h、88h)的帧的表达方式:

以下例子是一个标准数据帧,ID 为 0x3FF,包含 6 个字节数据(11h、22h、33h、44h、55h、66h)的帧的表达方式:

功能描述
支持连接 IEM7110-2G 网管型工业级以太网交换机。
支持导入 CAN 的点位表。
支持连接到 TCP Server。
支持作为 TCP Client 输出更新的点位值。
输入桩
输入端子1
组件有1个输入
端口名称:输入数据
输入类型:JSON格式文本
功能描述:输入更新的点位信息的JSON格式文本
示例:如下所示:
{
"name":"ESTOP",
"value":100
}
输出桩

数据接收方式
组件只有1个输入桩,异步模式同步模式任选。
参数配置
上传文件,上传特定格式的 csv 点位表,各个字段要按下面范例中给出的顺序和格式填写,其中 name 字段不能有重复, value 字段默认都是0。canid 是 对应 CAN 帧的ID,byte 值是 CAN 帧数据的第几个 byte ,bitmask 是当前 byte 中哪几个 bit ,offset 是相对于 bit 0 的偏移量。

namealiascanidbytebitmaskoffsetvalue
Standby备用0x18A00xFF00
Full_auto全自动截割0x18A10x1040
Cutting_start开始0x18A10x2050
Cutting_pause暂停0x18A10x4060
Cutting_stop停止0x18A10x8070
ESTOP急停0x18A30x0100
Start开机0x18A30x0210
Reset复位0x18A30x0420
Bell_set警铃设置0x18A30x0830
Bell报警0x18A30x1040
Boring支护掘进0x18A30x2050
Reserved_1预留10x18A30x4060
Reserved_2预留20x18A30x8070
.....................
Cutting_up截割升0x18B00xFF00
Cutting_down截割降0x18B10xFF00
Cutting_left截割左0x18B20xFF00
Cutting_right截割右0x18B30xFF00
Cutting_extend截割伸0x18B40x0100
Cutting_shorten截割缩0x18B40x0210
Shovel_up铲板升0x18B40x0420
Shovel_down铲板降0x18B40x0830
Back_support_up后支撑升0x18B40x4060
Back_support_down后支撑降0x18B40x8070
Left_band_forward左履带进0x18B50xFF00
Left_band_backward左履带退0x18B60xFF00
Right_band_forward右履带进0x18B70xFF00
Right_band_backward右履带退0x18C00xFF00
Standby_7备用70x18C10x0100
Standby_8备用80x18C10x0210
Standby_9备用90x18C10x0420
Standby_10备用100x18C10x0830
Standby_11备用110x18C10x1040
Standby_12备用120x18C10x2050
Ground地面0x18C10x4060
Underground井下0x18C10x8070
.....................

执行调优
建议不进行特别配置,按照平台的默认分配运行。
使用方法
未部署状态下的操作
前面板操作
添加“输入框”组件

后面板操作
添加“can_over_tcp_write”组件,输入端和“输入框”组件的输出端连接。
在右面板“参数设置”页面,填写TCP Server的地址和端口,比如下面的测试中使用了
10.88.35.251作为地址,32000作为端口号,上传文件处选择要上传的点位表csv文件(文件名必须是test_can.csv),

上传后可以查看

部署状态下的操作
使用网络调试助手作为对接的测试软件,创建一个TCP Server,本地主机地址
10.88.35.251,本地主机端口32000,接受设置为 HEX 可以显示16进制字节数据。

打开Server后,可以看到组件自动连接到了Server,

在前面版的输入框中,输入json字符串
{"name":"ESTOP","value":100},回车发送,TCP Server会接收到三条包含CAN帧的报文
08 00 00 01 8A 00 00 00 01 00 00 00 00
08 00 00 01 8B 00 00 00 00 00 00 00 00
08 00 00 01 8C 00 00 00 00 00 00 00 00